The continued growth and popularity of the Internet and World Wide Web has resulted in an increasing demand from users for more sophisticated content (e.g., audio, video, animation and 3-D) and the ability to interact with this content (e.g., play games and zoom and rotate visual content). The most prevalent method of deploying this kind of content is through the use of “plug-in” client software that is installed on the user's home or office computer. Generally, these plugins are relatively small software applications that are downloaded and installed on a user's computer if the user desires to be able to enjoy the kind of content that the particular plug-in is equipped to play. When installed, a plug-in will usually integrate itself with the operating system and/or web browser such that when the user encounters the kind of content that the plug-in is designed to play, the plug-in launches automatically and plays the content directly within the web browser or within a separate application window.
Currently, many plug-in vendors distribute the plug-in software for free to users and produce revenue by charging content providers for the tools and/or server software needed to produce and distribute the data files or data objects that contain the content. The “charging for the tool” approach involves the software developer selling the software tools that are necessary to create or package the content to content providers. Once created, the content does not require any special server software and may be downloaded or transmitted like any other file. The content providers pay a flat fee for the tools, and can create as much content as they wish using the tools. The plug-in client for reading or playing the created content is then distributed for free by the content providers and/or by the software developer in the form of a network download, a CD ROM, or any other method of software distribution. An example of the “charging for the tool” approach is Adobe Acrobat™ (the tool) and Adobe Acrobat Reader™ (the plug-in client). The “charging for the server software” approach is implemented where the type of content requires that the server run special software in addition to a standard web or file server. Streaming audio or video is an example of the type of content that requires special server software. The software developer charges for the server software that is installed on the content provider's server and the plug-in client software is distributed for free to the individual users. The server software can be implemented with restrictions that may limit the amount of plug-in users who can connect simultaneously or may have a feature for billing the content provider based on how much content is served. An example of the “charging for the server software” approach is RealServer™ by RealNetworks, Inc. Alternative and combination implementations of these two approaches also exist, including charging the user for an enhanced version of the plug-in (e.g., RealPlayerPlus™ by RealNetworks, Inc.), and adding additional features to the tool or server software for an additional charge.
Both of these approaches have significant drawbacks that reduce the possibility that both parties will be fairly compensated for the use of the plug-in. The tools approach is limited in that the software developer collects a flat fee regardless of how much or how little content is created using the tool. Small content providers may not have the financial resources to purchase the tool at all. The server approach is more scalable and allows for price selectivity between large and small content providers, but its usefulness is limited in that it requires administrative control over a web server to arrange for installation of the server software which many small businesses that share servers may not have.
Furthermore, a server approach implementation that bills by the number of total downloads of the content may not account for download requests that are intercepted by proxy/cache servers or the cache component of a web browser. This occurs because some service providers and corporate networks maintain cache/proxy servers that intercept download requests and provide a local copy of the data in order to speed response time and reduce bandwidth demands. Many web browsers also provide a feature that checks to see if a file has been previously downloaded before it requests the download from the server. When a download request is intercepted by the browser or a cache/proxy server, the content provider's server will not register that a “play” has occurred because the server never received the download request.